package com.yxq.mdt.app.modules.pm.model;


import com.yxq.mdt.app.base.RespBase;
import com.yxq.mdt.app.modules.goodsdetail.bean.GoodsDetailBean;
import com.yxq.mdt.app.modules.market.bean.MallGoodsBean;
import com.yxq.mdt.app.modules.pm.bean.CollectGoodsBean;
import com.yxq.mdt.app.modules.pm.bean.GoodsCommentBean;
import com.yxq.mdt.app.net.API;

import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface GoodsApi {

    /**
     * 商品详情
     *
     * @return
     */
    @GET(API.HOST_BASE_URL + "api/default/goods")
    Observable<RespBase<String>> getGoods(@Query("access_token") String access_token, @Query("id") String id);

    /**
     * 商品详情>相关推荐列表
     *
     * @return
     */
    @GET(API.HOST_BASE_URL + "api/default/goods-recommend")
    Observable<RespBase<MallGoodsBean>> getGoodsRecommend(@Query("goods_id") String id, @Query("page") int page);

    /**
     * 我的收藏-商品
     *
     * @return
     */
    @GET(API.HOST_BASE_URL + "api/user/favorite-list")
    Observable<RespBase<CollectGoodsBean>> favoriteList(@Query("access_token") String access_token, @Query("page") int page);

    /**
     * 商品-收藏
     *
     * @return
     */
    @POST(API.HOST_BASE_URL + "api/user/favorite-add")
    @FormUrlEncoded
    Observable<RespBase<String>> favoriteAdd(@Field("goods_id") String id);

    /**
     * 商品-取消收藏
     *
     * @return
     */
    @POST(API.HOST_BASE_URL + "api/user/favorite-remove")
    @FormUrlEncoded
    Observable<RespBase<String>> favoriteRemove(@Field("goods_id") String id);

    /**
     * 商品-商品评论分页查询
     *
     * @return
     */
    @GET(API.HOST_BASE_URL + "api/default/comment-list")
    Observable<RespBase<GoodsCommentBean>> getCommentList(@Query("goods_id") String id, @Query("page") int page);

    /**
     * 商品-添加购物车
     *
     * @return
     */
    @POST(API.HOST_BASE_URL + "api/cart/add-cart")
    @FormUrlEncoded
    Observable<RespBase<String>> addCart(@Field("goods_id") String id, @Field("num") int num, @Field("attr") String attr);

}
